package com.lagou.StageOne.Module3.Assignment.Assignment2;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Assignment2 {

    /**
     * 2. 编程题
     *
     *  准备一个 HashMap 集合，统计字符串"123,456,789,123,456"中每个数字字符串出现的次数并打印出来。
     *
     *  如：
     *
     *         123 出现了 2 次
     *
     *         456 出现了 2 次
     *
     *         789 出现了 1 次
     */

    public static void main(String[] args) {
        String str = "123,456,789,123,456";
        //根据 字符， 将该字符串进行切分
        String[] split = str.split(",");
        //将 字符 ， 进行去除，组成新字符串
        String replace = str.replace(",", "");
        //准备map集合
        Map<String,Integer> map = new HashMap<>();
        for (int i = 0; i < split.length; i++) {
            //计算次数
            int count = 0;
            //新字符串中查询 String[] split  中每个位置的字符出现的位置
            if (replace.indexOf(split[i]) != -1){
                //不为-1则存在 +1
                count++;
                //截取字符串 replace.substring（字符出现的位置+1）
                String subStr = replace.substring(replace.indexOf(split[i])+1);
                for (int j = 0; j < subStr.length(); j++) {
                    //再次判断
                    if (subStr.indexOf(split[i]) != -1){
                        count++;
                        subStr = subStr.substring(subStr.indexOf(split[i])+1);
                    }
                }
            }
            map.put(split[i],count);
        }
        //取出map集合所有的key
        Set<String> strings = map.keySet();
        //循环每个key，根据key取出对应的value
        for (String str1 :strings){
            System.out.println("字符串“123,456,789,123,456”中"+str1+"出现了"+map.get(str1)+"次");
        }

    }


}
